/***********************************************************************************
 * 文件名： hard_wire.h
 * 版本�?1
 * 说明�?
 * 		MCU管脚与外部电路的连接关系声明，与管脚相关的一些申明�?
 * 修改记录�?
 * 	2021/04/28: 初版�?刘言�?
***********************************************************************************/

#ifndef _HARD_WIRE_H_
#define _HARD_WIRE_H_

#include "mcu_mdt10f272.h"

#define BSP_MCU_MODEL POLSYS_MCU_MDT10F272

// 未使用的IO下拉输入
// PB3 仅用内部下拉会导致误判短路，原因可能是模拟与数字IO切换，模拟时会断开下拉�?
// 不使用尾充和咪头时要处理响应的IO口，不要浮空�?
#define GPIO_INIT                                                                            \
	{                                                                                        \
		PORTA = 0b00110110;	 /*PA全输出"L"*/                                              \
		PORTC = 0b00001001;	 /*PC全输出"L"*/                                              \
		ADINA = 0x00;		 /*PA模拟/数字IO设置 		1:模拟功能		0:数字I/O功能*/ \
		ADINC = 0x00;		 /*PC模拟/数字IO设置 		1:模拟功能		0:数字I/O功能*/ \
		CPIOA = 0b00011000;	 /*PA口输入输出控制		1:输入		0:输出*/                 \
		CPIOC = 0b00001000;	 /*PC口输入输出控制		1:输入		0:输出*/                 \
		PAPHR = 0b00000000;	 /*PA弱上拉控制位			1:使能		0:禁止*/                   \
		PAPDR = 0b00000000;	 /*PA弱下拉控制位			1:使能		0:禁止*/                   \
		PCPHR = 0b00001000;	 /*PC弱上拉控制位			1:使能		0:禁止*/                   \
		PCPDR = 0x00;		 /*PC弱下拉控制位			1:使能		0:禁止*/                   \
		PAINTR = 0b00011000; /*PA电平变化中断允许位		1:使能		0:禁止*/           \
	}

// 输出引脚--------------------------
#define LED_R PA5
#define LED_R_ON LED_R = 0
#define LED_R_OFF LED_R = 1

#define LED_G PC0
#define LED_G_ON LED_G = 0
#define LED_G_OFF LED_G = 1

#define LED_B PA2
#define LED_B_ON LED_B = 0
#define LED_B_OFF LED_B = 1

// 单色尾灯
#define LED_S PA0
#define LED_S_ON LED_S = 1
#define LED_S_OFF LED_S = 0

// 输出控制
#define OUTEN PA1
#define OUTEN_ON OUTEN = 0
#define OUTEN_OFF OUTEN = 1
#define OUTEN_IS_ON OUTEN == 0

// 输入引脚--------------------------
#define DCIN PA3
#define DCIN_HIGH DCIN = 0
#define DCIN_LOW DCIN = 1
#define DCIN_INPUT_MODE CPIOA3 = 1
#define DCIN_OUTPUT_MODE CPIOA3 = 0
#define DCIN_INTR_ON PAINTR3 = 1
#define DCIN_INTR_OFF PAINTR3 = 0

#define OVAL PA4
#define OVAL_HIGH OVAL = 0
#define OVAL_LOW OVAL = 1
#define OVAL_ANALOG_MODE AN3 = 1
#define OVAL_DIGIT_MODE AN3 = 0
#define OVAL_INPUT_MODE CPIOA4 = 1
#define OVAL_OUTPUT_MODE CPIOA4 = 0
#define OVAL_INTR_ON PAINTR4 = 1
#define OVAL_INTR_OFF PAINTR4 = 0

// 按键
#define BUTTON PC3

#define MIC 0

// ADC通道
#define ADCH_OVAL ANCHSEL_AN3 //PA4->AN3
#define ADCH_VBAT ANCHSEL_VDD4

// ADC参考电压
#define VREF_VDD REFSEL_VDD
#define VREF_2048MV VREFSEL_2048MV

#endif
